//
// Created by hay boy on 2022/6/6.
//

#ifndef ALGORITHMS_ILLEGALPARAMETERVALUE_H
#define ALGORITHMS_ILLEGALPARAMETERVALUE_H
#include <exception>
#include <string>
#include <iostream>
#include <utility>
using namespace std;
class normalException:public exception{
public:
    string error_mes;
    explicit normalException(string str){
        error_mes=std::move(str);
    }
    const char * what() const noexcept override{
        return error_mes.c_str();
    }
};
class illegalParameterValue:public normalException{

public:
    explicit illegalParameterValue(string str):normalException(str){

    }
};
class illegalIndex:public normalException{
public:
    explicit illegalIndex(string str):normalException(str){

    }

};

class matrixIndexOutOfBounds:public normalException{
public:
    matrixIndexOutOfBounds(): normalException("matrix index out of bounds"){

    }
};
class matrixSizeMismatch: public normalException{
public:
    matrixSizeMismatch(): normalException("matrixs size mismatch"){

    }
};
#endif //ALGORITHMS_ILLEGALPARAMETERVALUE_H
